/////////////////////////////////////////////////////////////////////////////
// Name:        wixtin.h
// Purpose:     
// Author:      Stephen Whittle
// Modified by: 
// Created:     07/06/2009 12:13:19
// RCS-ID:      
// Copyright:   
// Licence:     
/////////////////////////////////////////////////////////////////////////////

#ifndef _WIXTIN_H_
#define _WIXTIN_H_


/*!
 * Includes
 */

////@begin includes
#include "wx/frame.h"
#include "wx/statusbr.h"
////@end includes
#include "wx/confbase.h"
#include "wx/fileconf.h" 
#include "libtelnet.h"
#include "statusbarmetre.h"
/*!
 * Forward declarations
 */

////@begin forward declarations
class wxAuiPanel;
class wxAuiToolBar;
class wxMudAuiNotebook;
class wxMudTextCtrl;
class wxMudCommandLine;
class wxStatusBar;
////@end forward declarations

/*!
 * Control identifiers
 */

////@begin control identifiers
#define ID_WIXTIN 10000
#define ID_MENUITEM1 10023
#define ID_MENUITEM3 10033
#define ID_MENUITEM4 10034
#define ID_MENUITEM5 10042
#define ID_MENUITEM8 10045
#define ID_MENUITEM6 10043
#define ID_MENUITEM7 10044
#define ID_MENU 10024
#define ID_MENUITEM2 10025
#define ID_STATUSBAR 10020
#define SYMBOL_WIXTIN_STYLE wxCAPTION|wxRESIZE_BORDER|wxSYSTEM_MENU|wxMINIMIZE_BOX|wxMAXIMIZE_BOX|wxCLOSE_BOX
#define SYMBOL_WIXTIN_TITLE _("Wixtin")
#define SYMBOL_WIXTIN_IDNAME ID_WIXTIN
#define SYMBOL_WIXTIN_SIZE wxSize(800, 600)
#define SYMBOL_WIXTIN_POSITION wxDefaultPosition
////@end control identifiers


/*!
 * wixtin class declaration
 */

class wixtin: public wxFrame
{    
    DECLARE_CLASS( wixtin )
    DECLARE_EVENT_TABLE()

public:
    /// Constructors
    wixtin();
    wixtin( wxWindow* parent, wxWindowID id = SYMBOL_WIXTIN_IDNAME, const wxString& caption = SYMBOL_WIXTIN_TITLE, const wxPoint& pos = SYMBOL_WIXTIN_POSITION, const wxSize& size = SYMBOL_WIXTIN_SIZE, long style = SYMBOL_WIXTIN_STYLE );

    bool Create( wxWindow* parent, wxWindowID id = SYMBOL_WIXTIN_IDNAME, const wxString& caption = SYMBOL_WIXTIN_TITLE, const wxPoint& pos = SYMBOL_WIXTIN_POSITION, const wxSize& size = SYMBOL_WIXTIN_SIZE, long style = SYMBOL_WIXTIN_STYLE );

    /// Destructor
    ~wixtin();

    /// Initialises member variables
    void Init();

    /// Creates the controls and sizers
    void CreateControls();

////@begin wixtin event handler declarations

    /// wxEVT_CHAR event handler for ID_WIXTIN
    void OnChar( wxKeyEvent& event );

    /// wxEVT_COMMAND_MENU_SELECTED event handler for ID_MENUITEM1
    void OnExitClick( wxCommandEvent& event );

    /// wxEVT_COMMAND_MENU_SELECTED event handler for ID_MENUITEM3
    void OnMenuMainTabClick( wxCommandEvent& event );

    /// wxEVT_COMMAND_MENU_SELECTED event handler for ID_MENUITEM4
    void OnMenuSubTabClick( wxCommandEvent& event );

    /// wxEVT_COMMAND_MENU_SELECTED event handler for ID_MENUITEM5
    void OnMenuFloatClick( wxCommandEvent& event );

    /// wxEVT_COMMAND_MENU_SELECTED event handler for ID_MENUITEM8
    void OnSaveDefaultConfiguration( wxCommandEvent& event );

////@end wixtin event handler declarations

////@begin wixtin member function declarations

    /// Retrieves bitmap resources
    wxBitmap GetBitmapResource( const wxString& name );

    /// Retrieves icon resources
    wxIcon GetIconResource( const wxString& name );
////@end wixtin member function declarations

    /// Should we show tooltips?
    static bool ShowToolTips();

////@begin wixtin member variables
    wxAuiPanel* m_AuiPanel;
    wxMudCommandLine* m_InputBar;
    wxStatusBar* m_Status;
////@end wixtin member variables
void OnStatusbarResize(wxSizeEvent& event );
statusBarMetre* m_HP;
statusBarMetre* m_GP;
bool ParseTinCommand(wxString commandLine);

};


#endif
    // _WIXTIN_H_
